其他
这个问题,让我想起来了prettyB包,它给我们一键美化的功能,也展示了美化base plot的可能性。base plot还有一个好处,你的代码起码可以保障5年10年都可以用,但ggplot2就可能不太行了,不信你拿两年前的代码出来跑一下:)
虽然我是ggplot2爱好者,但有些ggplot2版本的画图函数实在是不敢恭维,除了可以用themes来改一些细节之外,缺少太多ggplot2的特性,我认为是不能称之为grammar of graphics的。基本上有很多实现还不如原先base plot,而且base plot有大量现成的各种画图函数,涵盖面要比ggplot2多。但是由于base plot的设计比较久远,画出来的图基本上看着像是20年前,不够漂亮,缺少现代化元素。
这里要推荐的是base plot的主题包,prettyB (https://github.com/jumpingrivers/prettyB),虽然目前只有两个主题minimal和expand,但这是一个非常好的尝试,可以让大量现有的画图函数出图效果更加现代化,减少illustrator修图的麻烦。
op = par(mfrow = c(1, 2))
graphics::plot.default(iris$Sepal.Length,
iris$Sepal.Width)plot(iris$Sepal.Length, iris$Sepal.Width)
载入包之后,默认的行为只会被改变,你用plot的时候,已经是使用主题的了。
效果是明显的,然后可以设置主题:
graphics::plot.default(iris$Sepal.Length, iris$Sepal.Width,
main="Classic Iris Dataset", xlab="Length", ylab="Width")
plot(iris$Sepal.Length, iris$Sepal.Width,
main="Classic Iris Dataset", xlab="Length", ylab="Width")
结果再画就是这样:
以下是barplot的一个例子。
我认为这是非常好的开端,随着不同主题的开发,base plot可以焕发青春,毕竟对于新手来手,只要知道plot命令就能出图,还是比较友好的。